﻿using System;
using System.Linq.Expressions;

namespace FluentlyXml.Core.DSL
{
	public interface ITypeSerializationSpec<T>
	{
		/// <summary> </summary>
		ITypeSerializationSpec<T> Ignore(Expression<Func<T, object>> expression);

		/// <summary> </summary>
		IInitialPropertySerializationSpec<T> Serialize(Expression<Func<T, object>> expression);

		ITypeSerializationSpec<T> SerializeAllAncestorsAsThisType();

		ITypeSerializationSpec<T> IgnoreAllProperties();
	}
}